//引入express
const express=require('express');
const router=require('./router.js');
const bodyParser=require('body-parser');
const session=require('express-session');
//2.创建服务器
const app=express();
//3.添加端口监听
app.listen(8080,()=>{
    console.log('http://127.0.0.1:8080')
});

//在express中使用session中间件,默认情况下,express不会开启session的使用
app.use(session({
    secret:'my_albx_35',//加盐,行话,就是加密. 是一个加密密钥,可以使任意字符串
    resave:false,//强制session保存到session store中,不管Session有没有更新，都强制保存
    saveUninitialiazed: false //强制没有‘初始化’的session保存到storage中
}));

//配置body-parser
// xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
// 处理post方式的请求
// extended:false; 将参数字符串转换为对象
app.use(bodyParser.urlencoded({extended:false}))
//可能会传递json格式字符串
app.use(bodyParser.json());

//4.托管静态资源
app.use('/assets',express.static('assets'));
app.use('/uploads',express.static('uploads'));
//5.配置ejs模板引擎
app.set('view engine','ejs');
//下面这句代码是进行ejs模板文件查询的默认目录配置,以后所有的ejs资源都会到指定的__dirname+"/views"
app.set('views',__dirname+"/views");

//添加全局的中间件,每次请求都经过此中间件
app.use(function(req,res,next){
    //有三种情况不用登陆
      //1.登陆页面
      //2.前台三个页面
      //3.有登陆状态,已登陆过
    if(req.session.isLogin&&req.session.isLogin==='true'||req.url==='/admin/login'||req.url.indexOf('/admin')===-1){//indexof方法返回的值没有就是-1,也就是说=-1就是没有admin,没有admin就属于前台页面
        next()
    }else{
        //实现重定向
        res.redirect('/admin/login')
    }
})
//6.让app使用router进行路由管理
app.use(router);